package com.catl.plc.meta;

import java.lang.annotation.*;

/**
 * 标注在实体类上
 * @author admin
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PlcField {

    /**
     * 字段描述
     */
    String comment() default "";

    /**
     * 字段占用的首个寄存器的偏移量
     */
    int offset() default 0 ;

    /**
     * 字段占用寄存器长度
     */
    int length() default 1;

    /**
     * 占用bit位置，从0开始;
     * -1 : 表示该字段只解析byte.
     *
     * @return
     */
    int bit() default -1;


    /**
     * 字段值的集合
     * @return
     */
    PlcValue[] values() default {};

    /**
     * 对plc数据的处理
     * @return
     */
    PlcOperate operate() default @PlcOperate(handle = PlcHandleEnums.DEF);


    /**
     * 是否开启日志
     * @return
     */
    boolean enableLog() default true;

    /**
     * 是否 是 故障
     * @return
     */
    boolean fault() default false;



}
